Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

247
Visualizações
¿Cuándo vería un "error" anidado en este archivo interceptor de errores angular?

Estoy siguiendo un par de tutoriales de Udemy en línea link1 link2 que crean un archivo de interceptor de errores Angular en el lado del cliente. Estoy tratando de entender cómo y cuándo vería una declaración dentro de este archivo que se ve así con un error anidado.

 if (error.status === 400) { if (error.error.errors) { // not sure why we would have a nested error inside error throw error.error; } else { this.alertService.danger(error.error.message); } }

Aquí está el archivo completo

 @Injectable() export class ErrorInterceptor implements HttpInterceptor { constructor(private router: Router, private alertService: AlertService) {} intercept(req: HttpRequest < any > , next: HttpHandler): Observable < HttpEvent < any >> { return next.handle(req).pipe( catchError(error => { if (error) { if (error.status === 400) { if (error.error.errors) { // not sure why we would have a nested error? throw error.error; } else { this.alertService.danger(error.error.message); } } if (error.status === 401) { this.alertService.danger(error.error.message); } if (error.status === 404) { this.router.navigateByUrl('/not-found'); } if (error.status === 500) { const navigationExtras: NavigationExtras = { state: { error: error.error } }; this.router.navigateByUrl('/server-error', navigationExtras); } } return throwError(error); }) ); } }

En el extremo del servidor .Net, tengo controladores que devuelven declaraciones en su mayoría como esta:

 return NotFound("Some message"); return BadRequest("Some message"); return Unauthorized("Some message"); return Ok();
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Revisé el código de la API, así que cuando la API devuelva esta respuesta (como contenido del cuerpo)

 { errors: [], message: "" }

pero no (que mi comentario fue incorrecto) :

 { error: { errors: [], message: "" } }

para casos de error/excepción. Entonces, el error adicional no proviene de la respuesta de la API.

Referencia: ExceptionMiddleware


Creo que el error es HttpErrorResponse . Y tiene el atributo de error .

 class HttpErrorResponse extends HttpResponseBase implements Error { constructor(init: { error?: any; headers?: HttpHeaders; status?: number; statusText?: string; url?: string; }) name: 'HttpErrorResponse' message: string error: any | null ok: false // inherited from common/http/HttpResponseBase constructor(init: { headers?: HttpHeaders; status?: number; statusText?: string; url?: string; }, defaultStatus: number = 200, defaultStatusText: string = 'OK') headers: HttpHeaders status: number statusText: string url: string | null ok: boolean type: HttpEventType.Response | HttpEventType.ResponseHeader }

Por lo tanto, para obtener el cuerpo del error , necesita:

 error.error
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda